From: Jasper St. Pierre Date: Mon, 26 Aug 2013 23:14:35 +0000 (-0400) Subject: dnd: Don't use reparent for adding actors to the uiGroup X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~3120 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=9d2791d9f8f6d0bb62998ca94f4372b9d0438b5d;p=gnome-shell.git dnd: Don't use reparent for adding actors to the uiGroup It's deprecated, terrible, and causes get_theme_node crashes. --- diff --git a/js/ui/dnd.js b/js/ui/dnd.js index c0d09ce5f..54193ad80 100644 --- a/js/ui/dnd.js +++ b/js/ui/dnd.js @@ -236,7 +236,7 @@ const _Draggable = new Lang.Class({ if (this.actor._delegate && this.actor._delegate.getDragActor) { this._dragActor = this.actor._delegate.getDragActor(); - this._dragActor.reparent(Main.uiGroup); + Main.uiGroup.add_child(this._dragActor); this._dragActor.raise_top(); Shell.util_set_hidden_from_pick(this._dragActor, true); @@ -285,7 +285,8 @@ const _Draggable = new Lang.Class({ this._dragOffsetX = actorStageX - this._dragStartX; this._dragOffsetY = actorStageY - this._dragStartY; - this._dragActor.reparent(Main.uiGroup); + this._dragOrigParent.remove_actor(this._dragActor); + Main.uiGroup.add_child(this._dragActor); this._dragActor.raise_top(); Shell.util_set_hidden_from_pick(this._dragActor, true); } @@ -555,7 +556,8 @@ const _Draggable = new Lang.Class({ _onAnimationComplete : function (dragActor, eventTime) { if (this._dragOrigParent) { - dragActor.reparent(this._dragOrigParent); + Main.uiGroup.remove_child(this._dragActor); + this._dragOrigParent.add_actor(this._dragActor); dragActor.set_scale(this._dragOrigScale, this._dragOrigScale); dragActor.set_position(this._dragOrigX, this._dragOrigY); } else {